成員運算子

Membership 運算子🔍

接下來要介紹的是 Python 中非常好用的成員運算子(in 和 not in)!這兩個運算子可以幫助我們快速檢查某個元素是否存在於序列中,超級方便的💪~


🎯基本用法

讓我們從最簡單的列表開始:

print('1. 列表(List)中的成員運算子')
fruits = ["蘋果", "香蕉", "橘子", "葡萄"]

# in 運算子
if "蘋果" in fruits:
    print("有蘋果在水果清單中")
# 說明:檢查「蘋果」是否在 fruits 列表中
# 結果:會印出訊息,因為「蘋果」確實在列表中

# not in 運算子
if "西瓜" not in fruits:
    print("沒有西瓜在清單中")
# 說明:檢查「西瓜」是否不在 fruits 列表中
# 結果:會印出訊息,因為「西瓜」不在列表中

在不同資料類型中的應用

2. 字串(String)中的成員運算子

email = "[email protected]"

# 檢查字串是否包含特定字元
if "@" in email:
    print("這是有效的email格式")
# 說明:檢查 email 是否包含 @ 符號

# 檢查子字串
if ".com" in email:
    print("這是一個.com網域的信箱")
# 說明:檢查 email 是否包含 .com 字串

3. 元組(Tuple)中的成員運算子

coordinates = (10, 20, 30, 40, 50)

if 30 in coordinates:
    print("找到座標點 30")
# 說明:檢查數字 30 是否在座標元組中

4. 集合(Set)中的成員運算子

permitted_roles = {"admin", "editor", "viewer"}

user_role = "editor"
if user_role in permitted_roles:
    print("使用者擁有編輯權限")
# 說明:檢查使用者角色是否在允許的角色集合中

⚡️進階應用範例

1. 字典(Dictionary)中的成員運算子

user_info = {
    "name": "小明",
    "age": 25,
    "city": "台北"
}

# 檢查鍵(key)是否存在
if "name" in user_info:
    print("找到使用者名稱")
# 說明:在字典中,in 運算子預設檢查鍵值

# 檢查值(value)是否存在
if "台北" in user_info.values():
    print("找到台北市")
# 說明:使用 .values() 方法來檢查字典的值

2. 多重資料結構中的檢查

students = [
    {"name": "小明", "scores": [80, 90, 85]},
    {"name": "小華", "scores": [85, 95, 88]},
]

# 巢狀結構中的檢查
for student in students:
    if 90 in student["scores"]:
        print(f"{student['name']}有考到90分以上")
# 說明:在巢狀結構中使用成員運算子檢查

實用技巧與注意事項

1. 大小寫敏感度

names = ["Alice", "Bob", "Charlie"]
if "alice" not in names:  # 注意:這裡會是 True
    print("找不到 alice")
# 說明:成員運算子區分大小寫

2. 效能考量

large_list = list(range(10000))
lookup_set = set(large_list)  # 轉換成集合

# 在大型資料中使用成員運算子
number = 9999
if number in lookup_set:  # 使用集合比使用列表快
    print("找到數字")
# 說明:對於大量資料,使用集合進行成員檢查效能較佳

💡 實用小技巧

使用成員運算子時,以下幾點要特別記住:

  1. 不同的資料型別中,in 的行為可能會不太一樣,要特別注意
  2. 在字典中使用 in 時,預設是檢查鍵(key)而不是值(value)
  3. 記得區分大小寫!這點很容易被忽略
  4. 如果要處理大量資料,建議使用集合(Set)來提升效能
  5. 可以搭配其他運算子使用,讓程式更有彈性